<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <style>
      body,
      ul {
        margin: 0;
        padding: 0;
      }
      body {
        background-image: url(../images/grid.png);
        /* background-repeat: no-repeat; */
      }
      svg {
        background-color: rgba(255, 0, 0, 0.1);
      }
    </style>
  </head>
  <body>
    <!-- 
      <animate>元素
      .给某个属性创建过度动画效果。需将 animate 元素嵌套在要应用动画的元素内

      <animate>元素常用属性
      .attributeName：指示将在动画期间更改的目标元素的 CSS 属性（property）或属性（attribute）的名称

      .动画值属性
      --from：在动画期间将被修改的属性的初始值
      --to：在动画期间将被修改的属性的最终值
      --values：from 和 to 写法的合并
      ----值需要用分号隔开：values:="2;2;3"
      ----当 values 属性定义时，from，to 会被忽略

      .动画时间属性
      .begin:定义何时开始动画或何时丢弃元素，默认是 0
      .dur：动画的持续时间，该值必须大于 0.单位可以是小时，分钟，秒，毫秒表示
      .fill：动画的最终状态。freeze（保存最后一个动画帧的状态）|remove（保持第一个动画帧的状态）
      .repeatCount：指示动画将发送的次数：<number>|indefinite。没有默认值
     -->
    <svg width="300" height="300" xmlns="http://www.w3.org/2000/svg">
      <rect x="0" y="0" width="100" height="100">
        <!-- 
          1.animate 元素的基本使用
         -->
        <!-- <animate
          attributeName="x"
          form="0"
          to="200"
          dur="3s"
          begin="2s"
          fill="freeze"
        ></animate> -->

        <!-- 2.animate 元素的基本使用(3个属性是必须的) -->
        <animate attributeName="x" to="200" dur="3s"></animate>
      </rect>
    </svg>

    <svg width="300" height="300" xmlns="http://www.w3.org/2000/svg">
      <rect x="0" y="0" width="100" height="100" fill="green">
        <!-- 
          from：0
          to：200

          values="0; 70; 200" 分别对应：0%； 50%， 100%。所有速度会不同
         -->
        <animate
          attributeName="x"
          dur="2s"
          values="0; 200"
          repeatCount="indefinite"
        ></animate>

        <animate
          attributeName="fill"
          dur="2s"
          values="red; green"
          repeatCount="indefinite"
        ></animate>
      </rect>
    </svg>

    <!-- 上一个动画结束后执行下一个动画 -->
    <svg width="300" height="300" xmlns="http://www.w3.org/2000/svg">
      <rect x="0" y="0" width="100" height="100" fill="pink">
        <animate
          id="oneAnimate"
          attributeName="x"
          dur="2s"
          values="0; 200"
          fill="freeze"
        ></animate>
        <animate
          attributeName="y"
          dur="2s"
          values="0; 200"
          fill="freeze"
          begin="oneAnimate.end"
        ></animate>
      </rect>
    </svg>
  </body>
</html>
